﻿using System;
namespace Producers.Kis.Xtee.Riik.Ee.Producer.Kis {
    
    
    public partial class PrincipalClaim : global::Producers.Kis.Xtee.Riik.Ee.Producer.Kis.IPrincipalClaim {
        
        private global::Producers.Kis.Xtee.Riik.Ee.Producer.Kis.NonEmptyString @__claimID;
        
        private System.Collections.Generic.List<global::Producers.Kis.Xtee.Riik.Ee.Producer.Kis.ICollateralClaim> @__collateralClaim = new System.Collections.Generic.List<global::Producers.Kis.Xtee.Riik.Ee.Producer.Kis.ICollateralClaim>();
        
        private decimal @__principalClaimSum;
        
        private System.Collections.Generic.List<global::Producers.Kis.Xtee.Riik.Ee.Producer.Kis.IDept> @__dept = new System.Collections.Generic.List<global::Producers.Kis.Xtee.Riik.Ee.Producer.Kis.IDept>();
        
        private global::Producers.Kis.Xtee.Riik.Ee.Producer.Kis.IClaimBasePrincipalClaim @__claimBase;
        
        public PrincipalClaim() {
        }
        
        /// <summary>
        /// All parameters
        /// </summary>
        public PrincipalClaim(global::Producers.Kis.Xtee.Riik.Ee.Producer.Kis.NonEmptyString @claimID, System.Collections.Generic.List<global::Producers.Kis.Xtee.Riik.Ee.Producer.Kis.ICollateralClaim> @collateralClaim, decimal @principalClaimSum, System.Collections.Generic.List<global::Producers.Kis.Xtee.Riik.Ee.Producer.Kis.IDept> @dept, global::Producers.Kis.Xtee.Riik.Ee.Producer.Kis.IClaimBasePrincipalClaim @claimBase) {
            this.@__claimID = @claimID;
            this.@__collateralClaim = @collateralClaim;
            this.@__principalClaimSum = @principalClaimSum;
            this.@__dept = @dept;
            this.@__claimBase = @claimBase;
        }
        
        /// <summary>
        /// Required parameters
        /// </summary>
        public PrincipalClaim(global::Producers.Kis.Xtee.Riik.Ee.Producer.Kis.NonEmptyString @claimID, decimal @principalClaimSum, System.Collections.Generic.List<global::Producers.Kis.Xtee.Riik.Ee.Producer.Kis.IDept> @dept, global::Producers.Kis.Xtee.Riik.Ee.Producer.Kis.IClaimBasePrincipalClaim @claimBase) {
            this.@__claimID = @claimID;
            this.@__principalClaimSum = @principalClaimSum;
            this.@__dept = @dept;
            this.@__claimBase = @claimBase;
        }
        
        /// <summary>
        /// Copy Constructor
        /// </summary>
        protected PrincipalClaim(IPrincipalClaim @principalClaim) {
            this.@__claimID = @principalClaim.ClaimID;
            this.@__collateralClaim = @principalClaim.CollateralClaim;
            this.@__principalClaimSum = @principalClaim.PrincipalClaimSum;
            this.@__dept = @principalClaim.Dept;
            this.@__claimBase = @principalClaim.ClaimBase;
        }
        
        public virtual global::Producers.Kis.Xtee.Riik.Ee.Producer.Kis.NonEmptyString ClaimID {
            get {
                return this.@__claimID;
            }
            set {
                this.@__claimID = value;
            }
        }
        
        public virtual System.Collections.Generic.List<global::Producers.Kis.Xtee.Riik.Ee.Producer.Kis.ICollateralClaim> CollateralClaim {
            get {
                return this.@__collateralClaim;
            }
            set {
                this.@__collateralClaim = value;
            }
        }
        
        public virtual decimal PrincipalClaimSum {
            get {
                return this.@__principalClaimSum;
            }
            set {
                this.@__principalClaimSum = value;
            }
        }
        
        public virtual System.Collections.Generic.List<global::Producers.Kis.Xtee.Riik.Ee.Producer.Kis.IDept> Dept {
            get {
                return this.@__dept;
            }
            set {
                this.@__dept = value;
            }
        }
        
        public virtual global::Producers.Kis.Xtee.Riik.Ee.Producer.Kis.IClaimBasePrincipalClaim ClaimBase {
            get {
                return this.@__claimBase;
            }
            set {
                this.@__claimBase = value;
            }
        }
    }
}
